package net.esj.basic.core.engine.util.enumeration;

import java.util.ArrayList;
import java.util.List;

import net.esj.basic.pojo.EnumStructure;

public class EnumVo implements EnumStructure {
	
	private String id;
	private Integer enumCode;
	private Integer enumOrdinal;
	private String enumTitle;
	private String enumType;
	private String enumValue;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public Integer getEnumCode() {
		return enumCode;
	}
	public void setEnumCode(Integer enumCode) {
		this.enumCode = enumCode;
	}
	public Integer getEnumOrdinal() {
		return enumOrdinal;
	}
	public void setEnumOrdinal(Integer enumOrdinal) {
		this.enumOrdinal = enumOrdinal;
	}
	public String getEnumTitle() {
		return enumTitle;
	}
	public void setEnumTitle(String enumTitle) {
		this.enumTitle = enumTitle;
	}
	public String getEnumType() {
		return enumType;
	}
	public void setEnumType(String enumType) {
		this.enumType = enumType;
	}
	public String getEnumValue() {
		return enumValue;
	}
	public void setEnumValue(String enumValue) {
		this.enumValue = enumValue;
	}

	public static final EnumVo EMPTY = new EnumVo();
	static{
		EMPTY.setEnumCode(-1);
		EMPTY.setEnumOrdinal(0);
		EMPTY.setEnumTitle("");
		EMPTY.setEnumType("");
		EMPTY.setEnumValue("");
		EMPTY.setId("");
	}
	
	public static final EnumVo convertToEnumVo(EnumStructure str){
		EnumVo vo = new EnumVo();
		vo.setId(str.getId());
		vo.setEnumCode(str.getEnumCode());
		vo.setEnumOrdinal(str.getEnumOrdinal());
		vo.setEnumTitle(str.getEnumTitle());
		vo.setEnumType(str.getEnumType());
		vo.setEnumValue(str.getEnumValue());
		return vo;
	}
	
	public static final <T extends EnumStructure> List<EnumVo> convertToEnumVo(List<T> strs){
		List<EnumVo> list = new ArrayList<EnumVo>();
		for(EnumStructure str : strs){
			if(str!=null){
				list.add(convertToEnumVo(str));
			}
		}
		return list;
	}
}
